xsplice: Stacking build-id dependency checking.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 28 Apr 2016 14:09:11 +0000 (10:09 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 29 Apr 2016 07:59:24 +0000 (03:59 -0400)
commit895111a94f0168699d5154c7a25bd33865559e2c
tree029c10cded62eda0e05d74f8e01b4e53bc134fb1
parent83f79477b4b14ce7ba21272c2ffd647e1d59f243
xsplice: Stacking build-id dependency checking.

We now expect that the ELF payloads be built with the
--build-id.

Also the .xsplice.deps section has to have the contents
of the hypervisor (or a preceding payload) build-id.

We already have the code to verify the Elf_Note build-id
so export parts of it.

This dependency means the hypervisor MUST be compiled with
--build-id - so we gate the build of xSplice on the availability
of said functionality.

This does not impact the ordering of how the payloads can
be loaded, but it does enforce an STRICT ordering when the
payloads are applied. Also the REPLACE is special - we need
to check that its dependency against the hypervisor - not
the last applied patch.

To make this easier to test we also add an extra test-case
to be used - which can only be applied on top of the
xen_hello_world payload.

As in, one can apply xen_hello_world and then xen_bye_world
on top of that. Not the other way.

We also print the dependency and payloads build_in the keyhandler.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
.gitignore
Config.mk
docs/misc/xsplice.markdown
xen/arch/x86/test/Makefile
xen/arch/x86/test/xen_bye_world.c [new file with mode: 0644]
xen/arch/x86/test/xen_bye_world_func.c [new file with mode: 0644]
xen/common/Kconfig
xen/common/version.c
xen/common/xsplice.c
xen/include/xen/xsplice.h